#ifndef SKYROAD_NVP_H_
#define SKYROAD_NVP_H_

template <typename T>
class nvp : public std::pair<const char *, T *> 
{
public:
    explicit nvp(const char * name, T & t) : std::pair<const char *, T *> (name, &t) 
    {
    }
};

template <typename T>
nvp<T> make_nvp(const char * name, T & t) 
{
	return nvp<T>(name, t);
}

#define NVP(name, value) make_nvp(name, value)

#endif
